未分类
5.9k 词
高赞回答 1 这也是个困扰了我多年的问题: loss = a * loss1 + b * loss2 + c * loss3 怎么设置 a,b,c? 我的经验是 loss 的尺度一般不太影响性能,除非本来主 loss 是 loss1,但是因为 b,c 设置太大了导致其他 loss 变成了主 loss。 实践上有几个调整方法: 手动把所有 loss 放缩到差不多的尺度,设 a = 1,b 和 c 取 10^k,k 选完不管了; 如果有两项 loss,可以 loss = a * loss1 + (1 - a) * loss2,通过控制一个超参数 a 调整 loss; 我试过的玄学躺平做法 loss = loss1 / loss1.detach() + loss2 / loss2.detach() + loss3 loss3.detach(),分母可能需要加 eps,一般效果不差(相当于在每一个 iteration 选定超参数 a, b, c,使得多个 loss 尺度完全一致);进一步 loss = loss1 + loss2 / (loss2 / loss1).detach() + ...
未分类
64 词
原来收敛不了估计是之前的loss函数设置不对,导致学习率相对来说太大了 训练100个epoch的loss 1733140892597